// 定义一个函数，用于绑定点击事件处理器到捕获电子邮件的按钮
function bindEmailCaptureClick() {
    // 使用off方法移除之前绑定的所有click事件，防止重复绑定
    $("#capture-btn").off("click").on("click", function(event) {
        // 阻止按钮默认的行为，比如表单提交
        event.preventDefault();

        // 获取输入框中用户的电子邮件地址
        let email = $("input[name='email']").val();

        // 发起一个Ajax请求，使用POST方法向服务器发送电子邮件地址
        $.ajax({
            url: "capture/email?email="+email, // 后端处理邮件发送的API端点
            method: "get",       // 使用get方法发送数据
            data: {               // 设置请求的数据
                email: encodeURIComponent(email) // 对email进行URL编码，防止特殊字符问题
            },
            success: function(result) { // 当请求成功时执行的回调函数
                let code = result['code']; // 从服务器响应中获取状态码

                // 如果状态码为200，表示请求成功
                if (code === 200) {
                    let countdown = 10; // 初始化倒计时
                    let $this = $(this); // 保存当前按钮的jQuery对象

                    // 禁用按钮，防止用户在倒计时期间重复点击
                    $this.prop('disabled', true);

                    // 创建一个定时器，每秒递减倒计时并更新按钮文本
                    let timer = setInterval(function() {
                        $this.text(countdown); // 更新按钮文本显示剩余时间
                        countdown -= 1; // 减少倒计时

                        // 当倒计时结束时
                        if (countdown <= 0) {
                            // 清除定时器，停止倒计时
                            clearInterval(timer);

                            // 重置按钮文本和状态，使其可以再次点击
                            $this.text("获取验证码");
                            $this.prop('disabled', false);
                        }
                    }, 1000); // 每隔1000毫秒（1秒）执行一次定时器函数

                    // 显示一个警告框，告知用户验证码已发送
                    alert("邮箱验证码发送成功！");
                } else {
                    // 如果状态码不是200，则显示服务器返回的错误消息
                    alert(result['message']);
                }
            },
            error: function(jqXHR, textStatus, errorThrown) { // 当请求失败时执行的回调函数
                // 记录错误信息到控制台
                console.error("Error:", textStatus, errorThrown);

                // 显示一个警告框，告知用户发送验证码时发生错误
                alert("发送验证码时发生错误，请稍后重试。");
            }
        });
    });
}
// 整个网页都加载完毕后执行
// $是jquery的一个缩写
$(function (){
    bindEmailCaptureClick()
});
